package com.moli.iov.handle.alarm.biz.valid.alarm;

import com.moli.iov.handle.alarm.biz.valid.ValidHandler;
import com.moli.iov.handle.alarm.biz.utils.AlarmUtils;
import com.moli.iov.handle.alarm.model.dto.AlarmDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * <p>
 *  是否正在报警 校验
 * </p>
 *
 * @author: zql
 * @Date: 2019/2/22 10:21
 */
@Slf4j
@Component
public class AlarmingValidHandler implements ValidHandler<AlarmDto> {

    @Autowired
    private AntiShakeValidHandler antiShakeValidHandler;

    @Autowired
    private AlarmUtils alarmUtils;

    @Override
    public boolean doHandle(AlarmDto alarmDto) {

        if(alarmDto.getIsAntiShake()){

            alarmUtils.initAlarmOffTimes(alarmDto.getVin(),
                                         alarmDto.getAlarmCode());
        }

        if(alarmDto.getIsCheckAlarming() &&
            alarmUtils.isAlarming(alarmDto.getVin(), alarmDto.getAlarmCode())){
            return false;
        }

        return antiShakeValidHandler.doHandle(alarmDto);
    }
}
